Dynamicky linkovany balicek
Otázka od: bardon
29. 11. 2002 9:50
Zdravim.
Zkousel jsem v D5 pouzit dynamicky linkovany BPL. Funguje to dobre, ale jen
v pripade, kdy v Project/Options zapnu pouzivani balicku. Pokud vypnu
pouzivani balicku, tak to nefunguje.
Ja pri ladeni vetsinou kompiluju bez pouziti balicku, aby se mi projevovaly
i pripadne zmeny v komponentach, az definitivni build se dela s balicky.
Nevite prosim nekdo jak pri kompilaci nebo v runtime poznam, zda mam zapnuto
pouzivani balicku? Ja bych si podle toho udelal nejakou vyhybku a skusil
bych to vyresit tak aby to fungovalo v obou pripadech.
(Neni to az tak dulezite protoze mohu nechat build s balicky a pouzivat jen
originalni balicky do kterych nesaham a nedavat do seznamu sve balicky.
Nicmene bych stejne chtěl umet vyresit to univerzalne.)
Odpovedá: Ondrej Kelle
29. 11. 2002 10:17
> Zkousel jsem v D5 pouzit dynamicky linkovany BPL. Funguje to
> dobre, ale jen v pripade, kdy v Project/Options zapnu pouzivani
> balicku. Pokud vypnu pouzivani balicku, tak to nefunguje.
Presne tak, runtime balicky su "all or nothing". Ak ich chces pouzit, musis
tak skompilovat cely projekt.
> Ja pri ladeni vetsinou kompiluju bez pouziti balicku, aby se
> mi projevovaly i pripadne zmeny v komponentach, az definitivni
> build se dela s balicky.
Tie dve veci sa navzajom nevylucuju. Mozes si vytvorit project group, ktora
bude obsahovat okrem Tvojho projektu aj vsetky pozadovane balicky. Pred
ladenim potom Compile All alebo Build All.
> Nevite prosim nekdo jak pri kompilaci nebo v runtime poznam,
> zda mam zapnuto pouzivani balicku? Ja bych si podle toho
> udelal nejakou vyhybku a skusil bych to vyresit tak aby to
> fungovalo v obou pripadech.
Pri kompilacii to asi nezistis; v runtime snad pomocou napr.
GetModuleHandle('vcl50.bpl') ale to Ti aj tak nepomoze, pretoze ziadna
vyhybka neexistuje. Skratka musis kompilovat projekt s runtime balickami, ak
chces pouzivat runtime balicky.
HTH
TOndrej
Odpovedá: Petr Vones
29. 11. 2002 12:51
From: "bardon" <bardon@akord-soft.cz>
> Nevite prosim nekdo jak pri kompilaci nebo v runtime poznam, zda mam zapnuto
> pouzivani balicku? Ja bych si podle toho udelal nejakou vyhybku a skusil
Pri kompilaci tak ze to mas zaskrtle v Project | Options
V runtime pomoci funkce IsCompiledWithPackages v unitu JclSysUtils v JCL:
http://sourceforge.net/project/showfiles.php?group_id=47514&release_id=118195
V drtive vetsine pripadu je ti to jedno. Balicky jsou nativnim rozsirenim
prekladace, takze aplikace se chova stejne jak pri prekladu s balicky tak bez
nich.
Petr Vones